package com.homelock.dubbo.service;


import com.homelock.common.vo.Resp;
import com.homelock.domain.query.ComHouseholdQuery;
import com.homelock.domain.query.ComOpenRecordQuery;
import com.homelock.domain.CommunityAdvDto;
import com.homelock.common.vo.PageResp;
import com.homelock.vo.CommunityInfoVo;

import java.util.List;

/**
 * dubbo Service消费接口
 */
public interface CommunityManagerService {
    /**
     * 查询物业相关的报警记录
     * @param openRecordQuery
     * @return
     */
    PageResp queryPageAlarmListByCommunity(ComOpenRecordQuery openRecordQuery);
    /**
     * 更新物业联系方式
     * @param communityId
     * @param contact
     * @return
     */
    Resp updateCommunityContact(Long communityId, String contact);
    /**
     * 查询物业基本信息
     * @param communityId
     * @return
     */
    CommunityInfoVo queryById(Long communityId);

    /**
     * 查询物业广告
     * @param id
     * @return
     */
    public CommunityAdvDto queryAdvById(Long id,Long communityId);
    /**
     * 新增物业广告
     * @param communityAdvDto
     * @return
     */
    Resp addCommunityAdv(CommunityAdvDto communityAdvDto);
    /**
     * 更新物业广告接口
     * @param communityAdvDto
     * @return
     */
    Resp updateCommunityAdv(CommunityAdvDto communityAdvDto);
    /**
     * 删除物业广告接口
     * @param id
     * @return
     */
    Resp deleteCommunityAdv(Long id);

    /**
     * 查询物业广告
     * @param openRecordQuery
     * @return
     */
    public PageResp queryPageAdv(ComOpenRecordQuery openRecordQuery);
    /**
     * 新增物业住户
     * @param communityId
     * @param householdName
     * @param householdContact
     * @return
     */
    Resp insertCommunityHousehold(Long communityId,String householdName,String householdContact,String address);

    /**
     * 更新物业住户信息
     * @param id
     * @param householdName
     * @param householdContact
     * @return
     */
    Resp updateCommunityHousehold(Long id,String householdName,String householdContact,String address);
    /**
     * 删除物业住户信息
     * @param id
     * @return
     */
    Resp delCommunityHousehold(Long id);
    /**
     * 删除物业住户信息
     * @param ids
     * @return
     */
    Resp delCommunityHouseholds(List<Long> ids);

    /**
     * 分页查询物业住户
     * @param comHouseholdQuery
     * @return
     */
    PageResp queryPageHousehold(ComHouseholdQuery comHouseholdQuery);

    /**
     * 发送物业通知
     * @return
     */
    Resp sendBatchCommunityNoice(Long communityId, List<Long> housholdIds, String smsContent);
}
